Repository navigation
feat(integrations): make Slack publicly available - #4823
Conversation
Remove the internal-only `slack-integration-access` PostHog flag that gated the Slack integration. Slack now shows in the web integrations list and desktop settings for all users, alongside Linear and GitHub. Paid access is still governed by the subscription paywall. - web integrations page: render Slack unconditionally - web Slack route layout: deleted (its only job was the flag gate; the parent (dashboard-legacy) layout already enforces auth) - desktop IntegrationsSettings: gate Slack on isItemVisible only - shared constants: drop the now-dead SLACK_INTEGRATION_ACCESS flag
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
💤 Files with no reviewable changes (2)
📝 WalkthroughWalkthroughThis PR removes Slack feature flag gating across the codebase. The ChangesRemove Slack Feature Flag Gating
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Ready to review this PR? Stage has broken it down into 3 individual chapters for you:
Chapters generated by Stage for commit 735d15c on May 21, 2026 10:32pm UTC. |
|
Capy auto-review is paused for this organization because the monthly auto-review limit has been reached. Increase the limit or turn it off in billing settings to resume automatic reviews. |
Greptile SummaryThis PR makes the Slack integration publicly visible by removing the PostHog
Confidence Score: 4/5Safe to merge — the change is well-scoped, correctly removes the visibility gate, and leaves authentication and org-membership checks intact. The flag removal is clean with no remaining references. The deleted layout's auth check was genuinely redundant. The only nit is the now-unnecessary
|
| Filename | Overview |
|---|---|
| apps/web/src/app/(dashboard-legacy)/integrations/page.tsx | Drops the useFeatureFlagEnabled/useMemo filter so all integrations render unconditionally; "use client" directive is now unused overhead since no hooks remain. |
| apps/web/src/app/(dashboard-legacy)/integrations/slack/layout.tsx | Deleted — this file's only job was the server-side PostHog flag gate; authentication is still enforced by the parent (dashboard-legacy)/layout.tsx. |
| apps/desktop/src/renderer/routes/_authenticated/settings/integrations/components/IntegrationsSettings/IntegrationsSettings.tsx | Removes hasSlackAccess guard; Slack row now gates on isItemVisible only, consistent with Linear and GitHub rows. |
| packages/shared/src/constants.ts | Removes the SLACK_INTEGRATION_ACCESS feature flag constant; clean removal with no remaining references confirmed. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[User visits /integrations] --> B["(dashboard-legacy)/layout.tsx\nChecks session → redirect to /sign-in if none"]
B --> C[IntegrationsPage\nRenders all integrations unconditionally\n✅ Slack now always visible]
C --> D[User clicks Slack card]
D --> E["/integrations/slack\n(no layout.tsx gate)"]
E --> F[SlackIntegrationPage\nChecks org membership via tRPC]
F -->|No org| G[Show 'join org' message]
F -->|Has org| H[Render ConnectionControls]
H --> I[Connect → API OAuth flow\nStill checks org membership]
style E fill:#f0f4ff,stroke:#5E6AD2
style C fill:#e6ffe6,stroke:#238636
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
apps/web/src/app/(dashboard-legacy)/integrations/page.tsx:1-3
After removing `useFeatureFlagEnabled` and `useMemo`, this component uses no React hooks and no browser-only APIs. The `"use client"` directive now forces the entire page (including the static `integrations` constant with JSX icon nodes) to be included in the client bundle unnecessarily. Dropping it lets Next.js render the page on the server, reducing JS sent to the browser. `IntegrationCard` already carries its own `"use client"` boundary, so mouse-hover interactivity is unaffected.
```suggestion
import { FaGithub, FaSlack } from "react-icons/fa";
```
Reviews (1): Last reviewed commit: "feat(integrations): make Slack publicly ..." | Re-trigger Greptile
| "use client"; | ||
|
|
||
| import { FEATURE_FLAGS } from "@superset/shared/constants"; | ||
| import { useFeatureFlagEnabled } from "posthog-js/react"; | ||
| import { useMemo } from "react"; | ||
| import { FaGithub, FaSlack } from "react-icons/fa"; |
There was a problem hiding this comment.
After removing
useFeatureFlagEnabled and useMemo, this component uses no React hooks and no browser-only APIs. The "use client" directive now forces the entire page (including the static integrations constant with JSX icon nodes) to be included in the client bundle unnecessarily. Dropping it lets Next.js render the page on the server, reducing JS sent to the browser. IntegrationCard already carries its own "use client" boundary, so mouse-hover interactivity is unaffected.
| "use client"; | |
| import { FEATURE_FLAGS } from "@superset/shared/constants"; | |
| import { useFeatureFlagEnabled } from "posthog-js/react"; | |
| import { useMemo } from "react"; | |
| import { FaGithub, FaSlack } from "react-icons/fa"; | |
| import { FaGithub, FaSlack } from "react-icons/fa"; |
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/web/src/app/(dashboard-legacy)/integrations/page.tsx
Line: 1-3
Comment:
After removing `useFeatureFlagEnabled` and `useMemo`, this component uses no React hooks and no browser-only APIs. The `"use client"` directive now forces the entire page (including the static `integrations` constant with JSX icon nodes) to be included in the client bundle unnecessarily. Dropping it lets Next.js render the page on the server, reducing JS sent to the browser. `IntegrationCard` already carries its own `"use client"` boundary, so mouse-hover interactivity is unaffected.
```suggestion
import { FaGithub, FaSlack } from "react-icons/fa";
```
How can I resolve this? If you propose a fix, please make it concise.
🧹 Preview Cleanup CompleteThe following preview resources have been cleaned up:
Thank you for your contribution! 🎉 |
Remove the internal-only `slack-integration-access` PostHog flag that gated the Slack integration. Slack now shows in the web integrations list and desktop settings for all users, alongside Linear and GitHub. Paid access is still governed by the subscription paywall. - web integrations page: render Slack unconditionally - web Slack route layout: deleted (its only job was the flag gate; the parent (dashboard-legacy) layout already enforces auth) - desktop IntegrationsSettings: gate Slack on isItemVisible only - shared constants: drop the now-dead SLACK_INTEGRATION_ACCESS flag
What
Removes the internal-only `slack-integration-access` PostHog flag that gated the Slack integration. Slack now appears in the web integrations list and desktop settings for all users, alongside Linear and GitHub.
Paid access is still governed by the subscription paywall — this only removes the internal-only visibility gate.
Changes
Notes
Verification
Summary by cubic
Make the Slack integration publicly available by removing the internal-only
slack-integration-accessgate. Slack now appears in web integrations and desktop settings for all users; the subscription paywall still controls paid access.apps/web/src/app/(dashboard-legacy)/integrations/slack/layout.tsx(server-side flag gate); parent layout already enforces auth.isItemVisibleonly, matching Linear/GitHub.SLACK_INTEGRATION_ACCESS.Written for commit 735d15c. Summary will update on new commits. Review in cubic
Summary by CodeRabbit
New Features
Chores